obsidian-cli-inspector 1.0.3

Local-first CLI/TUI for indexing and querying Obsidian vaults
Documentation
---
tags:
  - software
  - engineering
  - architecture
created: 2024-02-03
---

# Software Architecture

Software architecture is the high-level structure of a software system and the discipline of creating such structures.

## Design Principles

- **Separation of Concerns** - Like the [[Zettelkasten Method]] for code
- **Modularity** - Independent, reusable components
- **SOLID Principles** - Foundation of good OOP design
- **DRY** - Don't Repeat Yourself

## Architectural Patterns

- Microservices
- Event-driven architecture
- Layered architecture
- Hexagonal architecture (Ports & Adapters)

## Connection to Learning

Understanding architecture requires [[Deep Work]] and systematic [[Learning Strategies]]. It's not something you can learn superficially.

## Current Projects

Applying these principles in [[Projects]]:
- Building a CLI tool (this vault indexer!)
- Microservices migration
- API design

## Resources

See [[Book Notes]] for:
- Clean Architecture by Robert Martin
- Domain-Driven Design by Eric Evans
- Building Microservices by Sam Newman

Track progress in [[Daily Notes]].

Related: [[Pomodoro Technique]] for focused coding sessions.

#engineering #software